package com.baosight.risk.service.system.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.*;

import com.baosight.risk.base.entity.BaseEntity;
import lombok.Data;

/**
 * Table: sys_menu
 */
@Data
@Table(name = "sys_menu")
public class SysMenu extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 菜单名称
     * <p>
     * Table:     sys_menu
     * Column:    menu_name
     * Nullable:  false
     */
    @Column(name = "menu_name")
    private String menuName;

    /**
     * 父菜单ID
     * <p>
     * Table:     sys_menu
     * Column:    parent_id
     * Nullable:  true
     */
    @Column(name = "parent_id")
    private String parentId;

    /**
     * 显示顺序
     * <p>
     * Table:     sys_menu
     * Column:    order_num
     * Nullable:  true
     */
    @Column(name = "order_num")
    private String orderNum;

    /**
     * 请求地址
     * <p>
     * Table:     sys_menu
     * Column:    url
     * Nullable:  true
     */
    private String url;

    /**
     * 菜单类型（M目录 C菜单 F按钮）
     * <p>
     * Table:     sys_menu
     * Column:    menu_type
     * Nullable:  true
     */
    @Column(name = "menu_type")
    private String menuType;

    /**
     * 菜单状态（0显示 1隐藏）
     * <p>
     * Table:     sys_menu
     * Column:    visible
     * Nullable:  true
     */
    private String visible;

    /**
     * 权限标识
     * <p>
     * Table:     sys_menu
     * Column:    perms
     * Nullable:  true
     */
    @Column(name = "menu_key")
    private String menuKey;

    /**
     * 菜单图标
     * <p>
     * Table:     sys_menu
     * Column:    icon
     * Nullable:  true
     */
    private String icon;

    /**
     * 备注
     * <p>
     * Table:     sys_menu
     * Column:    remark
     * Nullable:  true
     */
    private String remark;

    /**
     * 是否显示下级菜单
     * <p>
     * Table:     sys_menu
     * Column:    Status
     * Nullable:  true
     */
    private String status;

    /**
     * 编码
     */
    @Column(name = "encode")
    private String enCode;

    /**
     * 路由菜单 0：否，1：是
     */
    private String route;

    /**
     * 外部链接  0：否，1：是
     */
    @Column(name = "out_link")
    private String outLink;

    /**
     * 菜单是否需要授权 0：否，1：是
     */
    @Column(name = "AUTH_FLAG")
    private String authFlag;

    /**
     * 子菜单
     */
    private List<SysMenu> children = new ArrayList<SysMenu>();

//    @Override
//    public int compareTo(SysMenu menu) {
//        if(orderNum > menu.getOrderNum()) {
//            return 1;
//        }else if(orderNum == menu.getOrderNum()) {
//            return 0;
//        }
//        return -1;
//    }
}